워드 임베딩 (Word Embedding) 이란?
텍스트(단어)를 기계가 이해할 수 있는 의미가 담긴 다차원 공간의 좌표(벡터)로 표현하는 기술
1. 문제의 시작 : 단순한 숫자 부여의 한계
원-핫 인코딩 (One-Hot Encoding)
워드 임베딩이 왜 필요한지 알려면, 과거에 사용되던 원-핫 인코딩의 한계를 먼저 이해해야 합니다.
이 방식은 단어장의 모든 단어에 고유한 번호를 부여하고, 해당 번호의 위치만 1로, 나머지는 모두 0으로 표시하는 방식입니다.
예시
다음과 같은 단어장이 있다고 가정해 봅시다.
{'사과':0, '바나나':1, '컴퓨터':2, '노트북':3}
사과 → [1, 0, 0, 0]
컴퓨터 → [0, 0, 1, 0]
노트북 → [0, 0, 0, 1]
치명적인 문제점
- 모든 관계가 동등하다 (의미 표현 불가)
원-핫 벡터들 간의 거리를 계산해 보면, 모든 단어는 서로에게 똑같이 '남남'입니다.
'사과'와 '컴퓨터' 사이의 거리와, 의미적으로 더 가까운 '컴퓨터'와 '노트북' 사이의 거리가 수학적으로 완전히 동일합니다. - 너무 거대한 주소 체계 (차원의 저주)
단어장의 크기가 3만 개라면, 모든 단어는 3만 차원의 벡터가 됩니다. 숫자 대부분이 0이라 극심한 메모리 낭비와 계산 비효율을 초래합니다.
2. 해결책 : 워드 임베딩의 종류와 발전
워드 임베딩은 "비슷한 문맥에서 등장하는 단어는 비슷한 의미를 가질 것이다"라는
아이디어를 바탕으로, 위 문제들을 해결하며 발전해 왔습니다.
1. 정적 임베딩 (Static Embedding)
하나의 단어에 하나의 고정된 벡터값을 부여합니다.
마치 사전처럼, 단어의 의미를 모든 문맥에서 나타난 뜻의 '평균'으로 계산하여 하나의 좌표에 고정시킵니다.
주요 모델
- Word2Vec
"주변 단어를 예측"하는 과정에서 단어의 의미를 학습합니다. - GloVe
말뭉치 전체에서 "단어들이 함께 등장한 횟수"를 기반으로 의미를 학습합니다. - FastText
단어를 "더 작은 단위(subword)로 분해"하여 학습해, 오타나 신조어에도 강건합니다.
장점 및 한계
미리 계산된 벡터를 조회(Lookup)만 하면 되므로 속도가 매우 빠르다는 장점이 있습니다. 하지만 '먹는 사과'와 '하는 사과'처럼, 문맥에 따라 달라지는 의미(동음이의어)를 구분하지 못하는 명확한 한계를 가집니다.
주요 활용처
빠른 속도가 중요하고, 문맥에 따른 미묘한 의미 변화가 덜 중요한 Task에서 여전히 효과적입니다.
2. 동적 / 문맥적 임베딩 (Dynamic)
문장 전체의 문맥을 실시간으로 파악하여,
같은 단어라도 상황에 맞는 다른 벡터값을 생성합니다. 진짜 언어처럼, 단어의 의미는 문장에 따라 결정된다는 아이디어를 구현했습니다.
주요 모델
BERT, GPT, ELMo 등 현대적인 트랜스포머 기반 모델들이
모두 이 방식을 사용합니다.
장점
문장 전체가 모델에 입력되면, 어텐션(Attention) 메커니즘을 통해 단어 간의 관계를 파악하고 각 단어에 가장 적합한 '문맥 맞춤형' 벡터를 생성합니다. 이를 통해 다의어(Polysemy) 문제를 완벽하게 해결합니다.
주요 활용처
높은 정확도가 필요하고, 문맥을 미묘하게 이해해야 하는 거의 모든 현대 NLP Task에서 표준으로 사용됩니다.
3. 결론
단순한 숫자에서 '의미'를 지닌 좌표로
우리는 단어를 기계가 이해할 수 있도록 숫자로 바꾸는 여정을 살펴보았습니다.
처음에는 각 단어에 단순히 번호표를 붙이는 원-핫 인코딩에서 시작했지만, 의미를 담지 못하는 명확한 한계가 있었습니다.
그 다음, 단어의 '대표 의미'를 고정된 좌표로 표현하는 정적 임베딩이 등장하여 속도와 효율성 면에서 큰 발전을 이루었지만,
문맥에 따라 변하는 의미를 놓치는 한계를 보였습니다.
마침내, 문장 전체를 보고 단어의 의미를 실시간으로 파악하는 동적/문맥적 임베딩이 등장하며 NLP 기술은 비약적인 발전을 이루었습니다.
이 기술 덕분에 기계는 인간의 언어처럼 복잡하고 미묘한 문맥을 이해할 수 있게 되었습니다.
이처럼 워드 임베딩의 발전은, 기계가 단순한 기호(text)를 풍부한 의미(meaning)로 받아들이게 된 과정이며,
오늘날 우리가 경험하는 거의 모든 AI 언어 모델의 핵심 엔진이라고 할 수 있습니다.